#ifndef _UFL_Window_H_
#define _UFL_Window_H_

#include "UFLBaseType.h"
#include <string>
#include <glfw3.h>

namespace ufl
{
	// UFLWindow
	class UFLWindow
	{
	public:
		UFLWindow(const std::string& caption, const unsigned int w, const unsigned int h);
		~UFLWindow();

		// OpenGL配置和生成
		virtual void configOpenGLContext();
		virtual void makeOpenGLContext();

		// 窗口位置设置
		virtual ufl_vertex_2i getWindowPos() const;
		virtual void	 setWindowPos(const ufl_vertex_2i& pos);

		// 设置窗口标题
		virtual void   setWindowCaption(const std::string& caption);

		// 窗口主循环
		virtual int mainLoop();
        
	private:
		GLFWwindow* _window;
	};
}

#endif